package cn.iocoder.yudao.module.resource.controller.admin.audio.vo;

import cn.iocoder.yudao.module.resource.controller.admin.keyword.vo.KeyWordRespVO;
import cn.iocoder.yudao.module.resource.controller.admin.tag.vo.TagRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

@Schema(description = "管理后台 - 音频 Response VO")
@Data
@ExcelIgnoreUnannotated
public class LmAudioRespVO {

    @Schema(description = "保证自增id", requiredMode = Schema.RequiredMode.REQUIRED, example = "15929")
    @ExcelProperty("保证自增id")
    private Integer id;

    @Schema(description = "音频的名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("音频的名字")
    private String name;

    @Schema(description = "音频的文字描述或音频的文字内容")
    @ExcelProperty("音频的文字描述或音频的文字内容")
    private String textDesc;

    @Schema(description = "音频文件id", example = "11822")
    @ExcelProperty("音频文件id")
    private Long fileId;
    @Schema(description = "音频文件访问地址", example = "https://www.ab.com/1.pngss")
    private String fileUrl;
    @Schema(description = "音频文件名字", example = "11822")
    private String fileName;

    @Schema(description = "标签id数组，一个音频可以有多个标签")
    @ExcelProperty("标签id数组，一个音频可以有多个标签")
    private List<TagRespVO> tagIdArray;

    @Schema(description = "关键字")
    @ExcelProperty("关键字")
    private List<KeyWordRespVO> keyWordIdArray;

    @Schema(description = "音频时长，单位是秒", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("音频时长，单位是秒")
    private Integer audioTime;

    /**
     * 主音频关联类型
     */
    @Schema(description = "关联音频类型：1，默认类型，2，问答式关键字回复")
    private Integer relationType;

    @JSONField(serialize = false)
    private String relationContent;

    @Schema(description = "关联内容，如果relationType是1，则为空")
    private List<AudioRelationRespVo> audioRelationRespVoList;

    @Schema(description = "声纹id")
    private Integer audioToneId;
    @Schema(description = "声纹名字")
    private String audioToneName;
    @Schema(description = "声纹下载地址")
    private String audioToneUrl;


}